// pages/cps/components/son/son.js
/**
 * 自定义组件和页面组件
 * 相同点：
 * 1. 都是 4 个部分：js json wxml wxss
 * 2. data 定义和修改一样
 * 不同点：
 * 1. 页面组件用 Page 函数初始化，自定义组件 Component初始化
 * 2. 自定义组件定义方法在 methods中，页面组件不需要
 */
Component({
  options: {
    // 启用多插槽支持
    multipleSlots: true
  },
  /**
   * 2. 接收父组件传递的数据
   */
  properties: {
    money: {
      // 设置类型
      type: Number,
      // 设置默认值
      value: 10
    }
  },
  data: {
    msg: 'hi 自定义组件！'
  },

  /**
   * 组件的方法列表
   */
  methods: {
    change() {
      this.setData({
        msg: Math.random()
      })
    },
    changeMoney() {
      // 子传父=》this.triggerEvent ===等价于 vue 的 this.$emit
      this.triggerEvent('changeMoney', 1e4)
    }
  },
  // 组件生命周期
  lifetimes: {
    attached: function () {
      // 在组件实例进入页面节点树时执行
      console.log('在组件实例进入页面节点树时执行');
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
      console.log('在组件实例被从页面节点树移除时执行');
    },
  },
})
